﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DA;
using BL;
namespace QL_KhachHang
{
    public partial class FrmHoaDon : Form
    {
        public FrmHoaDon()
        {
            InitializeComponent();
        }
        KhachHang_BL kh = new KhachHang_BL();
        NhanVien_BL nv = new NhanVien_BL();
        NhatKyPhong_BL nk = new NhatKyPhong_BL();
        DanhSachPhong_BL dsp = new DanhSachPhong_BL();
        DanhMucPhong_BL dmp = new DanhMucPhong_BL();
        PhieuThuePhong_BL p = new PhieuThuePhong_BL();
        HoaDon_BL hdbl = new HoaDon_BL();
        private void FrmHoaDon_Load(object sender, EventArgs e)
        {
     
            cbNguoiLap.DataSource = nv.LayDSNhanVien();
            cbNguoiLap.DisplayMember = "TenNV";
            cbNguoiLap.ValueMember = "MaNV";
            cbMaNK.DataSource = nk.LayDSNhatKyPhong();
            cbMaNK.DisplayMember = "MaNhatKy";
            cbMaNK.ValueMember = "MaPhong";
            hienthitext();
            hienthiListview();
        }

        private void hienthiListview()
        {
            listView1.Items.Clear();
            foreach (var item in hdbl.LayDSHoaDon())
            {
                ListViewItem it = new ListViewItem(item.MaHD);
                it.SubItems.Add(item.MaKH);
                it.SubItems.Add(item.NguoiLap);
                it.SubItems.Add(item.NgayLap.ToString());
                it.SubItems.Add(item.SoNgayO.ToString());
                it.SubItems.Add(item.GiaPhong.ToString());
                it.SubItems.Add(item.TongTienDV.ToString());
                it.SubItems.Add(item.ThanhTien.ToString());
                listView1.Items.Add(it);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            HoaDon s = HoaDon_ET();
            if (!string.IsNullOrEmpty(txtMaHoaDon.Text))
            {
                if (hdbl.ThemHoaDon(s) == true)
                {
                    MessageBox.Show("Thêm hóa đơn thành công!");
                    hienthiListview();
                }
                else
                {
                    MessageBox.Show("Lỗi!!!Vui lòng kiểm tra lại thông tin nhập");
                }
            }
            else
            {
                MessageBox.Show("Vui lòng nhập mã hóa đơn");
            }
        }

        private HoaDon HoaDon_ET()
        {
            HoaDon s = new HoaDon();
            s.MaHD = txtMaHoaDon.Text;
            s.MaKH = p.laymaKHtheomaphong(cbMaNK.SelectedValue.ToString());
            s.MaNhatKy = int.Parse(cbMaNK.Text);
            s.NguoiLap = cbNguoiLap.SelectedValue.ToString();
            s.NgayLap = DateTime.Parse(txtDate.Text);
            s.SoNgayO = int.Parse(txtSoNgayo.Text);
            s.GiaPhong = double.Parse(txtgiaphong.Text);
            s.TongTienDV = double.Parse(txtTongDV.Text);
            s.PhuThuKhac = double.Parse(txtThuKhac.Text);
            s.ThanhTien = double.Parse(txtThanhTien.Text);
            return s;
        }

        private void cbMaNK_SelectedIndexChanged(object sender, EventArgs e)
        {
            hienthitext();
         
        }

        private void hienthitext()
        {
            try
            {
                DateTime ngayden = (DateTime)nk.LaySoNgayDenTheoMa(int.Parse(cbMaNK.Text));
                DateTime ngaydi = (DateTime)nk.LaySoNgayDiTheoMa(int.Parse(cbMaNK.Text));
                TimeSpan ts = ngaydi - ngayden;
                string Maloai = dsp.LayMaLoaiTheoMa(cbMaNK.SelectedValue.ToString());
                double dongia = dmp.LayDongiaPhongTheoMa(Maloai);
                int sl = nk.LaySoLuongThaoMa(int.Parse(cbMaNK.Text));
                double thanhtien = 0;
                double phuthu=0;
                double dv = 0;
                if (sl < 3)
                {
                    thanhtien = ts.Days * dongia;
                }
                else
                {
                    phuthu=(((ts.Days * dongia) * 25) / 100);
                    thanhtien = (ts.Days * dongia) + phuthu;
                }
                
                txtThuKhac.Text = phuthu.ToString();
                txtSoNgayo.Text = ts.Days.ToString();
                txtTenKH.Text= p.layTenKHtheomaphong(cbMaNK.SelectedValue.ToString());
                txtgiaphong.Text = dongia.ToString();
             
                if (p.layLoaiKHtheomaphong(cbMaNK.SelectedValue.ToString()) == "Nước Ngoài")
                {
                    dv = (thanhtien * 1.5)-thanhtien;
                }
                else
                {
                    dv = 0;
                }
                txtTongDV.Text = dv.ToString();
                txtThanhTien.Text =(thanhtien+dv).ToString();
            }
            catch
            {
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
           string mahd= txtMaHoaDon.Text;
           DialogResult h = MessageBox.Show("Bạn có muốn xóa hóa đơn "+mahd,"Thông Báo",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
           if (DialogResult.OK==h)
           {
               if (hdbl.XoaHoaDon(mahd) == true)
               {
                   MessageBox.Show("Bạn đã xóa hóa đơn " + mahd + " thành công");
                   hienthiListview();
               }
               else
               {
                   MessageBox.Show("Lỗi!!!Vui lòng kiểm tra Mã hóa đơn");
               }
           }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            HoaDon s = HoaDon_ET();
            if (!string.IsNullOrEmpty(txtMaHoaDon.Text))
            {
                if (hdbl.SuaHoaDon(s) == true)
                {
                    MessageBox.Show("Sửa hóa đơn thành công!");
                    hienthiListview();
                }
                else
                {
                    MessageBox.Show("Lỗi!!!Vui lòng kiểm tra lại thông tin sửa");
                }
            }
            else
            {
                MessageBox.Show("Vui lòng nhập mã hóa đơn");
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            FrmInHoaDon inhd = new FrmInHoaDon();
            inhd.Show();

        }

    }
}
